package com.smedi.ismedi.progress.core.port.adapter.persistence.model;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.smedi.ismedi.database.starter.model.BasicFieldEntity;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.models.auth.In;
import lombok.*;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;

/**
 * 进度计划项目主表Entity类
 *
 * @author pengyan
 * @date 2022/09/16
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
@TableName(value = "project_schedule")
public class ProgressEntity extends BasicFieldEntity implements Serializable {
    /**
     * 主表id
     */
//    private Long id;
    /**
     * 项目id
     */
    private Long projectId;
    /**
     * 计划名称
     */
    private String	name;
    /**
     * 工程类别
     */
    private String	engineerType;
    /**
     * 项目经理
     */
    private String	generalManager;
    /**
     * 施工经理
     */
    private String	constructManager;
    /**
     * 主体院
     */
//    private String	mainCourtyard;
//    /**
//     * 主体院id
//     */
//    private Integer	mainCourtyardId;
    /**
     * 提交时间
     */
    private LocalDateTime	submitTime;
    /**
     * 计划开始时间
     */
    private LocalDateTime	scheduleStartTime;
    /**
     * 计划完成时间
     */
    private LocalDateTime	scheduleEndTime;
    /**
     * 实际开始时间
     */
    private LocalDateTime	realStartTime;
    /**
     * 实际完成时间
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private LocalDateTime	realEndTime;
    /**
     * 进度状态(0、滞后  1、正常)
     */
    private Integer	progressStatus;
    /**
     * 滞后时长
     */
    private Integer	lagTime;
    /**
     * 负责人
     */
    private String	responsiblePerson;
    /**
     * 里程碑数量
     */
    private Integer	milestoneNums;
    /**
     * 关键任务数量
     */
    private Integer	keyTaskNums;
    /**
     * 照片url
     */
    private String	photoUrl;
    /**
     * 完成百分比
     */
    private String	percentage;
    /**
     * 里程碑进度状态(0、滞后  1、正常)
     */
    private Integer	milestoneProgressStatus;
    /**
     * 关键任务进度状态(0、滞后  1、正常)
     */
    private Integer	taskProgressStatus;

    /**
     * 累积产值
     */
    private Integer	accumulationOutput;
    /**
     * 判断周月报审批通过是否需要更新主表
     */
    private LocalDate	updateDate;

    /**
     * 审批(1、待审批)
     */
    @TableField(exist = false)
    private Integer mainCourtyardApproval;

    @TableField(exist = false)
    private String hrOrganizationFullName;

    @TableField(exist = false)
    private Long versionId;

}
